<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<title>SYS_FS_EventHandlerSet Function</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="Doc-O-Matic" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="STYLESHEET" href="default.css" type="text/css" />

<script type="text/javascript" src="scripts.js"></script>
</head>
<body class="Element700" onload="onBodyLoadEx('frames.html', 'topic', '00943.html');" onmousedown="onBodyMouseDown();">

<!-- Begin Popups -->

<!-- End Popups -->

<!-- Begin Page Header -->
<div class="Element710" id="areafixed">
<div class="Element94">
<a href="01259.html" target="topic">System Service Libraries Help</a> &gt; <a href="00735.html" target="topic">File System Service Library Help</a> &gt; <a href="00736.html" target="topic">Library Interface</a> &gt; b) General Operation Functions &gt; <a href="00943.html" target="topic">SYS_FS_EventHandlerSet Function</a></div>
<div class="Element92">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element1">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element2">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element90">
<a href="00910.html" target="topic">Previous</a> | <a href="00736.html" target="topic">Up</a> | <a href="01087.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element96">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: SYS_FS_EventHandlerSet@void *@uintptr_t Topic Title: SYS_FS_EventHandlerSet Function)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table><div class="Element5">
SYS_FS_EventHandlerSet Function</div>
</div>
</div>

<!-- End Page Header -->

<!-- Begin Client Area -->
<div class="Element720" id="areascroll">
<div class="Element721">

<!-- Begin Page Content -->
<a name="PageContent"></a><div class="Element58">
<a name="4465736372697074696F6E"></a><div class="Element11">
<div class="Element10">
<p class="Element10">
This function allows a client to identify an event handling function for the File System to call back when mount/unmount operation has completed. The file system will pass mount name back to the client by calling &quot;eventHandler&quot; when AutoMount feature is enabled for File system.</p></div>
</div>
<a name="43"></a><div class="Element99">
C</div>
<div class="Element101"><div class="Element100"><pre class="Element100"><strong><span style="color: #000080">void</span></strong> <strong><span style="color: #000000">SYS_FS_EventHandlerSet</span></strong>(
    <strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">void</span></strong> * <strong><span style="color: #000000">eventHandler</span></strong>, 
    <strong><span style="color: #000080">const</span></strong> uintptr_t <strong><span style="color: #000000">context</span></strong>
);</pre></div></div>
<a name="507265636F6E646974696F6E73"></a><div class="Element14">
Preconditions</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
The <a href="01048.html" target="topic">SYS_FS_Initialize</a>() routine must have been called.</p></div>
</div>
<a name="506172616D6574657273"></a><div class="Element14">
Parameters</div>
<div class="Element11">
<div class="Element10">
<div class="Element312">
<div class="TableDiv">
<table cellspacing="0" class="Table3">
<tr>
<td class="Element300" valign="top" width="35%">
<div class="Element301">
Parameters&nbsp;</div></td><td class="Element304" valign="top" width="65%">
<div class="Element305">
Description&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
eventHandler&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Pointer to the event handler function implemented by the user<br>&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
context&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
The value of parameter will be passed back to the client unchanged, when the eventHandler function is called. It can be used to identify any client specific data object that identifies the instance of the client module (for example, it may be a pointer to the client module's state structure).&nbsp;</div></td></tr></table></div></div>
</div>
</div>
<a name="52657475726E73"></a><div class="Element14">
Returns</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
None.</p></div>
</div>
<a name="52656D61726B73"></a><div class="Element14">
Remarks</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
On Mount/Un-Mount of a volume all the registered clients will be notified. The client should check if the mount name passed when event handler is called is the one it is expecting and then proceed as demonstrated in above example.&nbsp;</p>
<p class="Element10">
If the client does not want to be notified when the mount/unmount operation has completed, it does not need to register a callback.&nbsp;</p>
<p class="Element10">
This API is Available only when SYS_FS_AUTOMOUNT_ENABLE is set to true.</p></div>
</div>
<a name="4578616D706C65"></a><div class="Element14">
Example</div>
<div class="Element11">
<div class="Element10">
<div class="Element13"><div class="Element12"><pre class="Element12">  <i><span style="color: #008000">// Client registers an event handler with file system. This is done once.</span></i>
  SYS_FS_EventHandlerSet(APP_SysFSEventHandler, (uintptr_t)NULL);

  <i><span style="color: #008000">// Event Processing Technique. Event is received when operation is done.</span></i>
  <strong><span style="color: #000080">void</span></strong> APP_SysFSEventHandler
  (
      <a href="00937.html" target="topic">SYS_FS_EVENT</a> event,
      <strong><span style="color: #000080">void</span></strong>* eventData,
      uintptr_t context
  )
  {
      <strong><span style="color: #000080">switch</span></strong>(event)
      {
          <strong><span style="color: #000080">case</span></strong> SYS_FS_EVENT_MOUNT:
              <strong><span style="color: #000080">if</span></strong>(strcmp((<strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">char</span></strong> *)eventData,&quot;/mnt/myDrive1&quot;) == 0)
              {
                  gSDCardMountFlag = <strong><span style="color: #000080">true</span></strong>;
              }
              <strong><span style="color: #000080">else</span></strong> <strong><span style="color: #000080">if</span></strong>(strcmp((<strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">char</span></strong> *)eventData,&quot;/mnt/myDrive2&quot;) == 0)
              {
                  gNVMMountFlag = <strong><span style="color: #000080">true</span></strong>;
              }
              <strong><span style="color: #000080">break</span></strong>;

          <strong><span style="color: #000080">case</span></strong> SYS_FS_EVENT_MOUNT_WITH_NO_FILESYSTEM:
          {
              <strong><span style="color: #000080">if</span></strong>(strcmp((<strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">char</span></strong> *)eventData,&quot;/mnt/myDrive1&quot;) == 0)
              {
                  gSDCardFormatRequired = <strong><span style="color: #000080">true</span></strong>;
              }
              <strong><span style="color: #000080">else</span></strong> <strong><span style="color: #000080">if</span></strong>(strcmp((<strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">char</span></strong> *)eventData,&quot;/mnt/myDrive2&quot;) == 0)
              {
                  gNVMFormatRequired = <strong><span style="color: #000080">true</span></strong>;
              }
              <strong><span style="color: #000080">break</span></strong>;
          }

          <strong><span style="color: #000080">case</span></strong> SYS_FS_EVENT_UNMOUNT:
              <strong><span style="color: #000080">if</span></strong>(strcmp((<strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">char</span></strong> *)eventData,&quot;/mnt/myDrive1&quot;) == 0)
              {
                  gSDCardMountFlag = <strong><span style="color: #000080">false</span></strong>;
              }
              <strong><span style="color: #000080">else</span></strong> <strong><span style="color: #000080">if</span></strong>(strcmp((<strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">char</span></strong> *)eventData,&quot;/mnt/myDrive2&quot;) == 0)
              {
                  gNVMMountFlag = <strong><span style="color: #000080">false</span></strong>;
              }
              <strong><span style="color: #000080">break</span></strong>;

          <strong><span style="color: #000080">case</span></strong> SYS_FS_EVENT_ERROR:
          <strong><span style="color: #000080">default</span></strong>:
              <strong><span style="color: #000080">break</span></strong>;
      }
  }</pre></div></div>
</div>
</div>
</div>
<!-- End Page Content -->

<!-- Begin Page Footer -->
<div class="Element95">
<a href="01259.html" target="topic">System Service Libraries Help</a> &gt; <a href="00735.html" target="topic">File System Service Library Help</a> &gt; <a href="00736.html" target="topic">Library Interface</a> &gt; b) General Operation Functions &gt; <a href="00943.html" target="topic">SYS_FS_EventHandlerSet Function</a></div>
<div class="Element93">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element3">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element4">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element91">
<a href="00910.html" target="topic">Previous</a> | <a href="00736.html" target="topic">Up</a> | <a href="01087.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element97">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: SYS_FS_EventHandlerSet@void *@uintptr_t Topic Title: SYS_FS_EventHandlerSet Function)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table></div>

<!-- End Page Footer -->
</div>
</div>

<!-- End Client Area -->
</body></html>